﻿// 349. 黑暗城堡.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*

https://www.acwing.com/problem/content/351/
在顺利攻破 Lord lsp 的防线之后，lqr 一行人来到了 Lord lsp 的城堡下方。

Lord lsp 黑化之后虽然拥有了强大的超能力，能够用意念力制造建筑物，但是智商水平却没怎么增加。

现在 lqr 已经搞清楚黑暗城堡有 N 个房间，M 条可以制造的双向通道，以及每条通道的长度。

lqr 深知 Lord lsp 的想法，为了避免每次都要琢磨两个房间之间的最短路径，Lord lsp 一定会把城堡修建成树形的。

但是，为了尽量提高自己的移动效率，Lord lsp 一定会使得城堡满足下面的条件：

设 D[i] 为如果所有的通道都被修建，第 i 号房间与第 1 号房间的最短路径长度；而 S[i] 为实际修建的树形城堡中第 i 号房间与第 1 号房间的路径长度；要求对于所有整数 i，有 S[i]=D[i] 成立。

为了打败 Lord lsp，lqr 想知道有多少种不同的城堡修建方案。

你需要输出答案对 231–1 取模之后的结果。

输入格式
第一行有两个整数 N 和 M。

之后 M 行，每行三个整数 X，Y 和 L，表示可以修建 X 和 Y 之间的一条长度为 L 的通道。

输出格式
一个整数，表示答案对 231–1 取模之后的结果。

数据范围
2≤N≤1000,
N−1≤M≤N(N−1)/2,
1≤L≤100
输入样例：
3 3
1 2 2
1 3 1
2 3 1
输出样例：
2
*/
int main()
{
    std::cout << "Hello World!\n";
}
 